Skip to content

Add the effective DOS and the energy band gap models#2640

Closed
damiano-flex wants to merge 9 commits into
marc/non_isothermalfrom
damiano/effective_dos
Closed

Add the effective DOS and the energy band gap models#2640
damiano-flex wants to merge 9 commits into
marc/non_isothermalfrom
damiano/effective_dos

Conversation

@damiano-flex
Copy link
Copy Markdown
Contributor

@damiano-flex damiano-flex commented Jul 9, 2025

Greptile Summary

Refactors semiconductor material modeling by introducing modular DOS and band gap models, replacing hardcoded values with configurable model classes.

  • Added new model classes in tidy3d/__init__.py including ConstantEffectiveDOS, IsotropicEffectiveDOS, MultiValleyEffectiveDOS, and various energy band gap models
  • Modified SemiconductorMedium in components/material/tcad/charge.py to use model-based implementations for N_c, N_v, and E_g parameters
  • Updated cSi material properties in material_library/material_library.py to use new model classes while preserving existing values
  • Modified test cases in test_heat_charge.py to use the new model classes instead of hardcoded values

@damiano-flex damiano-flex requested a review from marc-flex July 9, 2025 13:57
Copy link
Copy Markdown

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 files reviewed, 1 comment
Edit PR Review Bot Settings | Greptile

Comment thread tidy3d/__init__.py
Comment on lines 709 to 715
"set_logging_console",
"set_logging_file",
"wavelengths",
"ConstantEnergyBandGap",
"QuadraticEnergyBandGap",
"VarshniEnergyBandGap",
]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: consider grouping energy band gap models together with the other models in the first import block rather than appending to end of all

Copy link
Copy Markdown
Contributor

@marc-flex marc-flex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great. Thanks @damiano-flex


.. math::

E_g(T) = E_g(300) + \\alpha T + \\beta T^2
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you maybe add a dot between the constant and the T? I.e., \\alpha \\dot T

Comment on lines +21 to +22
Models the temperature dependence of the energy band gap (Eg) using a
quadratic approximation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I get home I'll give you a reference for this.

Comment on lines +2031 to +2033
N_c=ConstantEffectiveDOS(N=2.86e19),
N_v=ConstantEffectiveDOS(N=3.1e19),
E_g=ConstantEnergyBandGap(eg=1.11),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can add the temperature-dependence models by default? Maybe we should first check that we get the same values at 300K, though

@marc-flex marc-flex force-pushed the marc/non_isothermal branch from 11cd469 to ddaaccb Compare July 16, 2025 11:28
@yaugenst-flex yaugenst-flex deleted the damiano/effective_dos branch January 9, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants